Quantum Circuit Parameters Learning with Gradient Descent Using Backpropagation
Gemini要約
主な貢献と成果:
NISQ時代に向けた提案: 論文は、NISQ(Noisy-Intermediate Scale Quantum)コンピューター環境における量子-古典ハイブリッドアルゴリズムの課題として、古典コンピューターでのパラメータ最適化に焦点を当てています。
バックプロパゲーションアルゴリズム: 深層ニューラルネットワークで使われるバックプロパゲーションを、量子回路学習に応用する手法を提案しています。この方法では、量子回路を全結合型ニューラルネットワークと類似したものとして捉え、勾配計算を効率化します。
計算速度の向上: 提案されたアルゴリズムは、既存のパラメータ探索アルゴリズムよりも計算速度が速く、同等かそれ以上のテスト精度を示しています。また、GPGPU技術を活用することで、さらなる速度向上が期待できると述べています。
回帰と分類タスクでの検証:
回帰: $ f(x)=x(線形)、$ f(x)=x^2(非線形)、$ f(x)=\sin{x}(複雑な非線形)の3つのタスクで有効性を検証し、特に$ x^2と$ \sin{x}の回帰では高い$ R^2値(それぞれ0.989、0.992)を達成しています。
分類: make_circlesとmake_moonsの2つの非線形バイナリ分類タスクで検証し、古典的なSVM(サポートベクターマシン)と同等の高い精度で分類できることを示しています。
技術的ポイント
量子回路とニューラルネットワークの類似性: 量子回路は、各ノードに活性化関数がなく、入出力層と中間層のノード数が等しいことを除けば、従来のニューラルネットワークと非常に類似していると指摘しています。
勾配計算: 勾配は、量子回路の出力状態の確率振幅の微分として、連鎖律を使って複素数値空間で計算されます。提案手法の利点の一つは、複素数値の量子ゲート行列が、最終的に実数値に変換される点です。
量子回路の深さとスケーリングパラメータ: make_moonsデータセットを用いた実験では、量子回路の深さを増やすことで学習精度が向上すること、また、yというスケーリングパラメータを調整することで分類効率が大幅に改善されることを示しています。
メモ
この論文は、「通常の機械学習における誤差逆伝播を、量子回路のパラメータシフトで実装してみた」というもの?量子回路でのBackpropagationではない気がする。
/icons/hr.icon
Abstruct
量子コンピューティングは古典コンピュータを上回る可能性を秘めており、さまざまな分野で活躍が期待されています。
量子機械学習においては、量子コンピュータは特徴表現の強化や高次元状態・関数の近似に有用であることがわかっています。この目的のために、近年ではノイズを含む中規模量子コンピュータ(Noisy-Intermediate Scale Quantum, NISQ)環境下で、量子と古典を組み合わせたハイブリッドアルゴリズムが提案されています。このスキームでは、古典コンピュータは量子回路のパラメータ調整、最適化、更新の役割を担います。本論文では、パラメータ最適化における勾配計算を効率的に行い、量子回路学習のためのパラメータ更新を可能にする勾配降下法に基づくバックプロパゲーションアルゴリズムを提案します。本手法は、現在のパラメータ探索アルゴリズムに比べて計算速度において優れており、同等あるいはそれ以上のテスト精度を示します。
キーワード:量子コンピューティング、機械学習、誤差逆伝播、勾配 Intruduction
「量子コンピュータの基準とは何か」あるいは「“本物の”量子コンピュータに必要な要素は何か?」という問いに対して、有名なDi Vincenzo基準があります[1)。Di Vincenzo基準は7つの条件から成り、近年の技術発展によりそれぞれが着実に満たされつつあります。例えば、超伝導技術、スピン制御技術、マイクロ波共鳴技術の発展により、量子ビット(qubit)や量子ゲートは数十個から数千個に増加しました。
Di Vincenzo基準はすべての項目が重要ですが、最近の研究開発の結果から最も難しいのは3番目の基準である「量子計算が完了するまでコヒーレンス時間が持続すること」です。この条件は深い意味を持ち、量子コンピュータにおける量子重ね合わせや量子もつれといった要素がその成立に不可欠であることから、量子コンピュータの生命線とも言える問題です。
量子コヒーレンスとは、量子ビット(qubit)が協調的かつ精密に動作することを指します。しかし実際には、量子ビットは非常に壊れやすく、デコヒーレンス現象によって誤りが生じます。量子コヒーレンス誤差は、量子コンピュータの実現が困難である最大の理由です。スピンなどの量子状態を期待通りに精密に制御することは難しく、周囲環境のゆらぎやノイズによってビット反転や位相反転が発生します。このような誤りは量子誤り(quantum error)と呼ばれます。量子誤りが潜在的に存在する量、あるいは通常の確率的な量子ビットにおいて発生する量子誤りの数は、量子コンピュータに大きな影響を与える重要なパラメータであり、近年活発に研究されています。
相当量の量子誤りを持つ量子コンピュータは、ノイズを含む中規模量子コンピュータ(Noisy-Intermediate Scale Quantum: NISQ)と呼ばれます。NISQ環境下では、誤り耐性を備えた量子計算手法の開発が必要になります。この問題には2つの解決策があります。1つは、誤りが存在する状況でも量子誤り訂正を行いながら量子計算を実行する方法です。もう1つは、致命的な量子誤りが発生する前に量子計算を完了させ、その後の処理を古典コンピュータに引き継ぐという量子・古典ハイブリッドアルゴリズムを開発する方法です。
後者のアプローチは、量子近似最適化アルゴリズム(QAOA)[3)、変分量子固有値ソルバー(VQE)[4)など、多くのアルゴリズム[5–7)を生み出しました。量子・古典アルゴリズムは「量子超越(quantum supremacy)」よりも「量子優位性(quantum advantage)」を目指しています[8)。量子超越とは、量子コンピュータが古典コンピュータでは絶対に達成できない速度や解法を示すことを意味します。しかし、量子超越が実現するのは数十年先と考えられており、これまで報告されている「量子超越」は誇張されているか、公平な比較を欠いているとされています[9,10)。
この観点からすると、量子優位性の追求こそ現実的な目標であり、近い将来のNISQ量子コンピュータにおける具体的かつ有益な応用を見出すことを目指します。量子優位性の範囲内では、量子コンピュータの応用は単なる計算速度競争を超えて、量子化学分野における波動関数表現[11–15)や、機械学習分野における高次元特徴を強化して表現する量子カーネル[16–19)としての利用など、幅広い分野に拡張することが可能です。
量子・古典ハイブリッドアルゴリズムは、「量子」と「古典」を有機的に結びつけるための効率的なシミュレーションチャネルを構築する必要があります。QAOA、VQE、その他のハイブリッドNISQアルゴリズムにおいては、モデルパラメータを最適化するという困難な課題が存在します。これらすべてのアルゴリズムにおいて、パラメータの探索と更新は古典コンピュータ上で行われます。
完全に古典的なアプローチでは、最適なパラメータ探索は通常、数学的最適化問題として分類され、勾配ベースおよび非勾配ベースのさまざまな手法が広く利用されてきました。量子回路学習に関しては、これまでのところ、ほとんどのパラメータ探索アルゴリズムは、Nelder–Mead法[20)のような非勾配ベースの手法に基づいています。しかし近年では、SPSA[21)や有限差分法[22)といった勾配ベースの手法も報告されています。
本論文では、量子回路学習においてパラメータ最適化に必要な勾配を効率的に計算するための誤差逆伝播アルゴリズムを提案します。本研究の目的は、これまでに報告されている手法よりも優れた学習速度を持つ勾配ベースの回路学習アルゴリズムを開発することです。誤差逆伝播法は、勾配降下法を用いたパラメータ更新において勾配を効率的に計算できる手法として、ディープニューラルネットワークの機械学習分野でよく知られています[23)。さらに、ディープラーニング分野において確立され大きく発展しているGPGPU技術を利用することで、さらなる高速化も容易に実現可能です[24)。
我々の提案の背後にあるアイデアは次の通りです。量子回路のシミュレーション過程を慎重に検討すると、入力量子状態を $ |\psi_{\text{in}}\rangle とし、特定の量子ゲート $U(\theta)$ をFig.1に示すように適用した場合、出力状態$ |\psi_{\text{out}}\rangleは入力状態と量子ゲートの内積によって表すことができます。
https://scrapbox.io/files/68d65e9b747f63b5c24c619a.png
https://scrapbox.io/files/68d65ed2a6d9d00c4162775c.png
Fig. 1
3つのゲートを持つ量子回路と、それに対応する全結合型量子ネットワークの例。これは、入力層・中間層・出力層に等しい数のノードを持つ4層ニューラルネットワークに類似していることを示している。なお、図示をわかりやすくするために振幅値は正規化していない。
一方、活性化関数を持たない全結合ニューラルネットワークの計算過程は
$ Y=W⋅X
と書くことができます。ここで、$ \mathbf{X}は入力ベクトル、$ \mathbf{W}はネットワークの重み行列、$ \mathbf{Y}は出力です。量子ゲート$ U(\theta)がネットワークの重み行列$ \mathbf{W}と非常によく似ていることがわかります。これは、ディープニューラルネットワークで用いられるバックプロパゲーションアルゴリズムが、ある程度修正されれば量子回路学習のシミュレーション過程に適用可能であることを示しています。
我々の提案する手法により、量子ビット数が増加したり、回路の深さ(ゲート数)が増加した場合でも、勾配計算に要する時間を大幅に削減することが可能になります。さらに、バックプロパゲーションの発展の上に築かれたGPGPUの利点を活用することで、多数の量子ビットやより深い回路が用いられる場合においても、NISQハイブリッドアルゴリズムにおける勾配ベースのバックプロパゲーションを用いたパラメータ探索が一層容易になると期待されます。
Quantum Backpropagation Algorithm
Fig.1 に示すように、量子回路は従来のニューラルネットワークと非常に類似した全結合型量子ネットワークとして効果的に表すことができます。ただし、以下の2点が異なります。
各ノードに活性化関数は適用されないため、ノードはニューロンとはみなされない(または、恒等的な活性化関数が適用されると仮定できる)。
入力層・中間層・出力層におけるノード数がすべて等しいため、各層の次元が同じであり、「隠れ層」という概念は存在しない。
量子回路において入力として示される状態は、量子ビット数$ nに対し$ 2^n個存在するうちの1つであり、その振幅は「1」(正規化されていない)であることに注意してください(詳細は Fig.1 参照)。このネットワーク類似性は、ディープマシンラーニング分野で広く利用されているバックプロパゲーションのような学習アルゴリズムを、量子回路に対しても共有できることを意味します。
一般に、バックプロパゲーション法は偏微分の連鎖律を利用し、ネットワークの出力から勾配を逆伝播させて重みの勾配を計算します。連鎖律のおかげで、バックプロパゲーションは入力/出力関係だけで計算可能であり、その計算コストはノード1つ分で済みます[23)。量子計算を誤差逆伝播によってシミュレーションする場合、量子状態 $ |\psi\rangleと量子ゲートは複素数値で表されます。ここでは、複素数値ベクトル空間における量子バックプロパゲーションの導出の詳細を示します。
$ n量子ビットの入力が$ |\psi_{\text{in}}\rangleであり、量子回路パラメータネットワーク$ W(\theta)が適用された場合、出力$ |\psi_{\text{out}}\rangleは次のように表されます:
https://scrapbox.io/files/68d66032663b109e623feea8.png
ここで、$ c_jは状態$ |j\rangleの確率振幅であり、$ |c_j|^2 = p_jは状態$ |j\rangleの観測確率を表します。もし損失関数$ Lが量子測定によって決定される観測確率を用いて表されるならば、学習パラメータの勾配は次のように記述できます:
https://scrapbox.io/files/68d66077fc10ca76ec83fe2e.png
ここで、
https://scrapbox.io/files/68d66092402bd3497eb146d6.png
となります。ただし、$ \bar{c^j_{\theta}}は$ c^j_{\theta}の複素共役です。したがって、観測確率の勾配は次のように展開できます:
https://scrapbox.io/files/68d660b8331722fe7a1edc28.png
式 (5) はさらに次のように整理されます:
https://scrapbox.io/files/68d661197d873d760cd048b8.png
式 (6) は複素数を含みますが、最終的には以下のように実数値として表すことができます:https://scrapbox.io/files/68d66135bcb60b5e84100453.png
ここで、次の関係を用いると、式 (7) の$ c_jの部分を$ \frac{\partial p^j_{\theta}}{\partial c^j_\theta}で置き換えることができます。
https://scrapbox.io/files/68d6615201384c21db4a05e1.png
したがって、
$ \frac{\partial L}{\partial \theta} = 2Re \left[ \frac{\partial L}{\partial p^j_\theta} \frac{\partial p^j_\theta}{\partial c^j_\theta} \frac{\partial c^j_\theta}{\partial \theta} \right] \tag{9}
式 (9) は、従来のディープニューラルネットワークにおける計算と同様に、誤差逆伝播によって求めることができます [25)。一方、本手法の利点の一つは、複素数を含む量子ゲート行列が実数に変換される点にあります。損失関数の$ \thetaに関する勾配は、従来の逆伝播計算で得られる複素ベクトル空間の値の実部から求めることができます。各ノードにおける計算グラフを用いた逆伝播のより詳細な導出については、参考として付録に示しています。
//〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
自分用メモ
$ \frac{\partial L}{\partial p^j_\theta} :損失関数の勾配。古典部分
$ \frac{\partial p^j_\theta}{\partial c^j_\theta} :確率と振幅の関係。量子→古典
$ \frac{\partial c^j_\theta}{\partial \theta} :量子回路のパラメータ依存性。量子
//〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
Experiment and results
https://scrapbox.io/files/68d66318b6a2a28a6efbff71.png
Fig. 2
(a) ユニタリ入力ゲート $ U_{\text{in}}(x) による入力状態の準備。これは一連の回転ゲートで表される。
(b) 変分パラメータ状態 $ W(\boldsymbol{\theta}) を表す量子回路。ここで $ l は量子回路の深さを示す。
(c) 量子エンタングルメント回路。ここで $ U_{\text{ent}} ゲートは、量子ビット $ j から量子ビット $ (j+1) \bmod n への CZ ゲートで構成され、$ j \in {0, \dots , n-1} である。
次に、提案する量子逆伝播アルゴリズムの有効性を検証するために、回帰問題と分類問題を含む教師あり学習タスクを用いた実験を行いました。
量子回路は、古典データ$ x から入力状態を生成するユニタリ入力ゲート$ U_{\text{in}}(x)と、パラメータ$ \boldsymbol{\theta}を持つユニタリゲート$ W(\boldsymbol{\theta})から構成されます。入力ゲートについては、文献 [22)に従い、以下を用います(Fig.2(a) 参照)。
$ U_{in}(x) = \otimes^{n-1}_{j=0} Rz(\theta^Z_j) Ry(\theta^Y_j)
ここで、各古典データに基づいて$ R_y, R_z回転を適用します。
一方、$ W(\boldsymbol{\theta})は文献 [26)に従い、以下のように構築されます(Fig.2(b) 参照):
https://scrapbox.io/files/68d665494010435b827f4f31.png
ここで$ U_{\text{loc}}^{(l)}(\theta^{(l)})は局所的な単一量子ビット回転からなる層であり、$ R_yおよび $ R_zの回転のみを用います。すなわち、
$ U(\theta_{j,k}) = Rz(\theta^z_{j,k}) Ry(\theta^y_{j,k})
各$ \thetaは実数パラメータであり、$ \theta_k \in \mathbb{R}^{2n}、$ \theta_{j,k} \in \mathbb{R}^{n}です。
また、$ U_{\text{ent}}はエンタングリングゲートであり、ここではCZゲートを使用します。
最終的な量子回路の全体構成は Fig.2(c) に示されています。
Regression
回帰タスクでは、回路パラメータを $ n = 3, $ l = 3 に設定した。すなわち、量子ビットの数は 3 であり、回路の深さは 4 である。回路の出力状態 $ |\psi_{\text{out}}\rangle から、最初の量子ビットに対するパウリ Z 観測子の期待値を取得した。
一次元データ $ x は、以下の回路パラメータ設定によって入力される:
$ \theta^z = \cos^{-1}(x^2) \tag{10}
$ \theta^y = \sin^{-1}(x) \tag{11}
ターゲット関数 $ f(x) は、Z 期待値の 2 倍を出力として回帰された。提案手法の有効性を確認するために、3 つの回帰タスクを実施した。現在の回帰タスクでは、従来の最小二乗損失関数を採用し、次式で表される:
$ L = \tfrac{1}{2},(2\langle Z \rangle - f(x))^2 \tag{12}
さらに、その一次導関数は次のようになる:
$ \delta = \frac{\partial L}{\partial \langle Z \rangle} = (2\langle Z \rangle - f(x)) \tag{13}
ここで誤差 $ \delta が、バックプロパゲーションに用いられる量となる。Z の期待値 $ \langle Z \rangle は次式で与えられる:
$ \langle Z \rangle = 1 \cdot p_{1,\theta}^{|0\rangle} + (-1) \cdot p_{1,\theta}^{|1\rangle} \tag{14}
ここで、式 (14) に示された期待値がどのように導かれるかを、より詳細に説明する。式 (14) に示された確率を得る方法は、2 通り存在する。
$ p_{1,\theta}^{|i\rangle} は観測によって測定可能である。例えば、3量子ビットの量子回路がある場合、次の8状態に対して確率が定義される:
$ p_\theta^{|000\rangle}
$ p_\theta^{|001\rangle}
$ p_\theta^{|010\rangle}
$ p_\theta^{|011\rangle}
$ p_\theta^{|100\rangle}
$ p_\theta^{|101\rangle}
$ p_\theta^{|110\rangle}
$ p_\theta^{|111\rangle}
それぞれの状態に対応する確率は、$ p_0, p_1, p_2, p_3, p_4, p_5, p_6, p_7 である。
https://scrapbox.io/files/68d66d58f66767f331b98a0d.png
Fig.3 に示すように、最初の量子ビットで観測測定を行う場合、$ p_{1,\theta}^{|0\rangle} と$ p_{1,\theta}^{|1\rangle} の確率が得られる。これらは第1量子ビットが $ |0\rangle または $ |1\rangle として観測される可能性を表す。
確率を得る2つ目の方法は、量子シミュレータを用いた計算によるものである。
最初の量子ビットで測定を行うと、$ p_{z,1}^{|0\rangle} と $ p_{z,1}^{|1\rangle} が次のように表される:
$ p_{1,\theta}^{|0\rangle} = p^{|000\rangle} + p^{|010\rangle} + p^{|100\rangle} + p^{|110\rangle} \tag{15}
$ p_{1,\theta}^{|1\rangle} = p^{|001\rangle} + p^{|011\rangle} + p^{|101\rangle} + p^{|111\rangle} \tag{16}
このように計算を行うことで、式に必要な確率を求めることができ、その結果として $ \langle Z \rangle が得られる。
Fig.4 は、提案手法の有効性を検証するために行った3種類の典型的な回帰タスクの結果を示している。
Fig.4(a), (b), (c) では、線形回帰と非線形回帰の両方を代表する3つのターゲット関数を選んだ:
$ f_1(x) = x :典型的な線形関数
$ f_2(x) = x^2 :単一の凹型プロファイルを持つ非線形問題
$ f_3(x) = \sin x :多くの凹凸を含む波状プロファイルで、より複雑な問題
実用性を考慮し、ターゲット関数にはノイズを加えた。また、回路学習において3つのターゲット関数それぞれに対して訓練データ数を100に設定した。
その結果、誤差逆伝播に基づく量子回路は回帰タスクにおいて非常に良好な性能を示した。例えば、$ x^2 および $ \sin x の回帰に対して得られた決定係数 $ R^2 の値は、それぞれ 0.989 と 0.992 と非常に高い値となった。
学習初期段階では、結果はターゲット関数から大きく外れていたが、最終段階では回帰曲線が訓練データの主要な特徴を捉え、非常に妥当なフィッティング曲線を示した。
Fig.4(a) においては、回帰プロファイルの左端でフィッティング曲線がターゲット関数から外れているのが観察された。このずれは、境界付近の訓練データ不足が原因と考えられる。この問題は、訓練データ数を増やすか、あるいは損失関数に正則化項を追加することで改善できる。後者は従来の機械学習タスクで一般的に用いられる手法である。